约瑟夫环_java_数组

package test;
import java.util.Scanner;//键盘输入
/**

public class test{
public static void main(String[] args){

//提示输入总人数
System.out.println("请输入做这个游戏的总人数:");
Scanner sca=new Scanner(System.in);
int m=sca.nextInt();



//提示输入要出圈的数值
System.out.println("请输入要出圈的数值:");
int n=sca.nextInt();
System.out.println("按出圈的次序输出序号:");















//创建有m=6个值的数组
int[] a=new int[m];
//初始长度,以后出圈一个,长度就减一
int len=m;
//给数组赋值
for(int i=0;i<a.length;i++)
a[i]=i+1;




//i为元素下表,j代表当前要报的数
int i=0;
int j=1;
while(len>0){ //len=6 循环6次
if(a[i%m]>0){
if(j%n==0){//找到要出圈的人,并把圈中人数减一 此时的n=3
//System.out.print(i+"dljahjd");
System.out.print(a[i%m]+" ");




a[i%m]=-1;
j=1;
i++;
len--;
}else{
i++;
j++;
}





}else{//遇到空位了,就跳到下一位,但j不加一,也就是这个位置没有报数
i++;
}




}




}




}

posted @ 2017-09-24 10:30  fendou300  阅读(592)  评论(0编辑  收藏  举报